home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 23 / Amiga Format AFCD23 (Feb 1998, Issue 107).iso / -seriously_amiga- / shareware / archivers / magicarchiver / routines.rexx < prev   
OS/2 REXX Batch file  |  1997-12-06  |  21KB  |  813 lines

  1. /* Application created by MUIBuild */
  2. options results
  3. parse arg com
  4. MUIA_List_Format        = 0x80423c0a /* V4  isg STRPTR            */
  5. MUIA_list_Active        = 0x8042391c
  6. ASLFR_InitialDrawer     = 0x80080009
  7. MUIA_Slider_Level       = 0x8042ae3a
  8. Application_Sleep       = 0x80425711
  9. List_Active             = 0x8042391c
  10. List_Insert_Bottom      = -3
  11. List_Insert_Top         = -2
  12. MUIV_List_Insert_Active = -1
  13. MUIV_List_Insert_Bottom = -3
  14. MUIV_List_Active_Bottom = -3
  15. MUIV_List_Insert_Top    = -2
  16. Slider_Quiet            = 0x80420b26
  17. TRUE=1
  18. FALSE=0
  19. c=0
  20.  
  21. address MAGICARCHIVER
  22.  
  23. /* Variables Arexx */
  24. /* ------------------- */
  25. /* n : module en cours */
  26. /* ------------------- */
  27. /* ---- pour zoo ------- */
  28. cmd.1.1='a'
  29. cmd.1.2='u'
  30. cmd.1.3='x'
  31. /* ---- pour Lharc ----- */
  32. cmd.2.1='-r -n a'
  33. cmd.2.2='-r -n u'
  34. cmd.2.3='-n x'
  35. /* --- pour lha -------- */
  36. cmd.3.1='a -r -x -N -Qa'
  37. cmd.3.2='u -r -x -N -Qa'
  38. cmd.3.3='x -N -Qa'
  39. /* --------------------- */
  40. mode='lha'
  41. getvar num
  42. n=result
  43. say 'Routines'
  44. do forever
  45.   com= getclip('COM')
  46.   if com~='' then say com
  47.  
  48.   if com='ArchTout'  then call ArchTout  /*Sous programmes concernant l'archivage */
  49.   if com='CreatTout' then call CreatTout
  50.   if com='Quit'      then break
  51.   if com='Init'      then call Init
  52.  
  53.  
  54.   if com='NomA'      then call NomA  /* sous programmes concernant les modules */
  55.   if com='Src1'      then call Src1
  56.   if com='Src2'      then call Src2
  57.   if com='Src3'      then call Src3
  58.   if com='Src4'      then call Src4
  59.   if com='Src5'      then call Src5
  60.   if com='Src6'      then call Src6
  61.   if com='Src7'      then call Src7
  62.   if com='Src8'      then call Src8
  63.   if com='Src9'      then call Src9
  64.   if com='SrcA'      then call SrcA
  65.   if com='RepD'      then call RepD
  66.   if com='Disk'      then call Disk
  67.   if com='ModP'      then call ModP
  68.   if com='ModM'      then call ModM
  69.   if com='SetMod'    then call SetMod
  70.  
  71.   if com='Arch'      then call Arch   /* sous programmes concernant la maintenance */
  72.   if com='Creat'     then call Creat
  73.   if com='Restau'    then call Restau
  74.   if com='OUI'       then call OUI
  75.   if com='NON'       then call NON
  76.   if com='Eff'       then call Eff
  77.   if com='MAJ'       then call MAJ
  78.   if com='SAUVE'     then call SAUVE
  79.   if com='SAUVM'     then call SauveMod
  80.   if com='Select'    then call select
  81.  
  82.   if com='Arc'       then call Arc    /* sous programme concernant la configuration */
  83.   if com='Src'       then call Src
  84.   if com='Rest'      then call Rest
  85.   if com='ALst'      then call ALst
  86.   if com='RArc'      then call RArc
  87.   if com='RSrc'      then call RSrc
  88.   if com='RRest'     then call RRest
  89.   if com='RALst'     then call RALst
  90.   if com='SC'        then call SC
  91.  
  92. end
  93. call setclip 'COM',''
  94. call SauveModule        /* Sauvegarde du dernier module actif */
  95. address MAGICARCHIVER Quit      /* Tout fermer */
  96. exit
  97.  
  98. /* --------------- */
  99. ArchTout:
  100.     call setclip 'COM',''
  101.     group ID Root ATTRS MUIA_Group_ActivePage MUIV_Group_ActivePage_Next
  102.     group ID Root ATTRS MUIA_Group_ActivePage MUIV_Group_ActivePage_Next
  103.     say 'Archive de touts les modules'
  104.     do m=1 to 30
  105.       if presence.m=TRUE then
  106.       do
  107.         if flag.m='OUI' then call Arch2
  108.       end
  109.       else
  110.       do
  111.         if exists('program:Fichiers/CFG/Config'||m) then
  112.         do
  113.           call Open('file','program:Fichiers/CFG/config'||m,'R')
  114.             Nom.m=readln('file')
  115.             Mode.m=readln('file')
  116.             Src.1.m=readln('file')
  117.             Src.2.m=readln('file')
  118.             Src.3.m=readln('file')
  119.             Src.4.m=readln('file')
  120.             Src.5.m=readln('file')
  121.             Src.6.m=readln('file')
  122.             Src.7.m=readln('file')
  123.             Src.8.m=readln('file')
  124.             Src.9.m=readln('file')
  125.             Src.10.m=readln('file')
  126.             RepD.m=readln('file')
  127.             Disk.m=readln('file')
  128.             Pat.m=readln('file')
  129.             Flag.m=readln('file')
  130.             Presence.m=TRUE        /* Le module est en mémoire */
  131.             call Close('file')
  132.           if Flag.m='OUI' then call Arch2
  133.         end
  134.       end
  135.     end
  136.     group ID Root ATTRS MUIA_Group_ActivePage MUIV_Group_ActivePage_Prev
  137.     group ID Root ATTRS MUIA_Group_ActivePage MUIV_Group_ActivePage_Prev
  138. return
  139.  
  140. CreatTout:
  141. call setclip 'COM',''
  142. return
  143. Init:
  144.     say 'Initialisation'
  145.     call SetClip 'COM',''
  146.     list ID Stat INSERT POS MUIV_List_Insert_Bottom STRING 'Initialisation'
  147.     /* Lire le fichier de configuration */
  148.     call Open('file','program:Fichiers/CFG/Config','R')
  149.     RepArc = Readln('file')
  150.     Setvar ArcDir RepArc
  151.     RepSrc = Readln('file')
  152.     SetVar SrcDir RepSrc
  153.     RepRest= Readln('file')
  154.     SetVar DestDir RepRest
  155.     ActLst=  Readln('file')
  156.     SetVar Liste ActLst
  157.     say Liste
  158.     call Close('file')
  159.  
  160.     group ID Root ATTRS MUIA_Group_ActivePage MUIV_Group_ActivePage_Next /* Activer la page Modules  */
  161.     n=1                                                                  /* pour remplir les chaines */
  162.     call LireModule n                                                      /* lire le premier module   */
  163.     call Open('file','program:Fichiers/'ActLst,'R')
  164.     group ID Root ATTRS MUIA_Group_ActivePage MUIV_Group_ActivePage_Next
  165.     say 'lecture liste'
  166.     j=1
  167.     do forever
  168.       L = readln('file')
  169.       ListeArc.j=L
  170.       j=j+1
  171.       say L
  172.       if L=='' then break
  173.       list ID Liste INSERT POS MUIV_List_Insert_Bottom STRING L
  174.     end
  175.     NArc=j-2
  176.     say NArc
  177.     group ID Root ATTRS MUIA_Group_ActivePage MUIV_Group_ActivePage_Next
  178.     string ID Arc CONTENT RepArc
  179.     string ID Src CONTENT RepSrc
  180.     string ID Rest CONTENT RepRest
  181.     string ID ALst CONTENT ActLst
  182.     say 'fin lecture'
  183.     group ID Root ATTRS MUIA_Group_ActivePage MUIV_Group_ActivePage_Prev
  184.     group ID Root ATTRS MUIA_Group_ActivePage MUIV_Group_ActivePage_Prev
  185.     group ID Root ATTRS MUIA_Group_ActivePage MUIV_Group_ActivePage_Prev /* Revenir a la page maitre */
  186.     call Close('file')
  187.  
  188. return
  189.  
  190. Select:
  191.   call SetClip 'COM',''
  192.   call QuelArch
  193. return
  194.  
  195. MAJ:
  196.     call SetClip 'COM',''
  197.     j=1
  198.     list ID Liste STRING
  199.     do i=1 to 30
  200.       if exists('program:Fichiers/CFG/Config'||i) then
  201.       do
  202.         call Open('file','Program:Fichiers/CFG/Config'||i,'R')
  203.         nom = readln('file')
  204.         say 'nom 'nom
  205.         if nom~='' then
  206.           do
  207.             ListeArc.j=nom
  208.             do k=1 to 15
  209.               Flag.j=readln('file')
  210.             end
  211.             list ID Liste POS List_Insert_Bottom INSERT STRING nom','Flag.j
  212.             say 'Liste 'ListeArc.j
  213.             j=j+1
  214.           end
  215.          call Close('file')
  216.       end
  217.     end
  218.     NArc=j-1
  219. return
  220.  
  221. SAUVE:
  222.     call SetClip 'COM',''
  223.     call Open('file','program:Fichiers/'ActLst,'W')
  224.  
  225.     do i=1 to NArc
  226.       call writeln('file',ListeArc.i||','||Flag.i)
  227.     end
  228.     call Close('file')
  229. return
  230.  
  231. SetMod:
  232.     call SetClip 'COM',''
  233.     call SauveModule
  234.     slider ID sld ATTRS MUIA_Slider_Level
  235.     n  = result
  236.     string ID NumMo CONTENT n
  237.     setvar num n
  238.     call LireModule n
  239.     call SetClip 'COM',''
  240. return
  241. NomA:
  242.     call SetClip 'COM',''
  243.     getvar ArcDir
  244.     call ReqArc
  245.     Nom.n=result
  246.     pos=LastPos('/',Nom.n)
  247.     Nom.n=right(Nom.n,length(Nom.n)-pos)
  248.     string ID NomA CONTENT Nom.n
  249.     say n
  250.     say Nom.n
  251. return
  252. Src1:
  253.     call SetClip 'COM',''
  254.     getvar SrcDir
  255.     call ReqDir
  256.     RepSrc1.n=result
  257.     string ID Src1 CONTENT RepSrc1.n
  258.     say RepSrc1.n
  259. return
  260.  
  261. Src2:
  262.     call SetClip 'COM',''
  263.     getvar SrcDir
  264.     call ReqDir
  265.     string ID Src2 CONTENT result
  266.     RepSrc2.n=result
  267. return
  268. Src3:
  269.     call SetClip 'COM',''
  270.     getvar SrcDir
  271.     call ReqDir
  272.     string ID Src3 CONTENT result
  273.     RepSrc3.n=result
  274. return
  275.  
  276. Src4:
  277.     call SetClip 'COM',''
  278.     getvar SrcDir
  279.     call ReqDir
  280.     string ID Src4 CONTENT result
  281.     RepSrc4.n=result
  282. return
  283. Src5:
  284.     call SetClip 'COM',''
  285.     getvar SrcDir
  286.     call ReqDir
  287.     string ID Src5 CONTENT result
  288.     RepSrc5.n=result
  289. return
  290. Src6:
  291.     call SetClip 'COM',''
  292.     getvar SrcDir
  293.     call ReqDir
  294.     string ID Src6 CONTENT result
  295.     RepSrc6.n=result
  296. return
  297. Src7:
  298.     call SetClip 'COM',''
  299.     getvar SrcDir
  300.     call ReqDir
  301.     string ID Src7 CONTENT result
  302.     RepSrc7.n=result
  303. return
  304. Src8:
  305.     call SetClip 'COM',''
  306.     getvar SrcDir
  307.     call ReqDir
  308.     string ID Src8 CONTENT result
  309.     RepSrc8.n=result
  310. return
  311. Src9:
  312.     call SetClip 'COM',''
  313.     getvar SrcDir
  314.     call ReqDir
  315.     string ID Src9 CONTENT result
  316.     RepSrc9.n=result
  317. return
  318. SrcA:
  319.     call SetClip 'COM',''
  320.     getvar SrcDir
  321.     call ReqDir
  322.     string ID Src10 CONTENT result
  323.     RepSrc10.n=result
  324. return
  325. RepD:
  326.     call SetClip 'COM',''
  327.     getvar DestDir
  328.     call ReqDir
  329.     string ID RepD CONTENT result
  330.     RepDest.n=result
  331. return
  332. Disk:
  333.     call SetClip 'COM',''
  334.     getvar SrcDir
  335.     call ReqDir
  336.     string ID Disk CONTENT result
  337.     DiskDest.n=result
  338. return
  339.  
  340. ModP:
  341.   call SetClip 'COM',''
  342.   call SauveModule
  343.   getvar num
  344.   n=result
  345.   if n<30 then do
  346.     n=n+1
  347.     setvar num n
  348.   end
  349.   list ID Stat INSERT POS MUIV_List_Insert_Bottom STRING 'Passage au module suivant : N° 'n
  350.   slider ID sld ATTRS MUIA_Slider_Level n
  351.   string ID NumMo CONTENT n
  352.   call LireModule n
  353.   do while getclip('COM')~='SetMod'
  354.   end
  355.   call SetClip 'COM',''
  356. return
  357. ModM:
  358.   call SetClip 'COM',''
  359.   call SauveModule
  360.   getvar num
  361.   n=result
  362.   if n>1 then do
  363.     n=n-1
  364.     setvar num n
  365.   end
  366.   list ID Stat INSERT POS MUIV_List_Insert_Bottom STRING 'Passage au module précédent : N° 'n
  367.   slider ID sld ATTRS MUIA_Slider_Level n
  368.   string ID NumMo CONTENT n
  369.   call LireModule n
  370.   do while getclip('COM')~='SetMod'
  371.   end
  372.   call SetClip 'COM',''
  373. return
  374.  
  375. ReqArc:
  376.   aslrequest ID Titre TITLE '"Selection Archive"' ATTRS ASLFR_InitialDrawer result
  377. return result
  378.  
  379. ReqDir:
  380.   aslrequest ID Titre TITLE '"Selection Repertoire"' ATTRS ASLFR_InitialDrawer result
  381. return result
  382. ReqFile:
  383.   aslrequest ID Titre TITLE '"Selection Fichier"' ATTRS ASLFR_InitialDrawer result
  384. return result
  385. SauveMod:
  386.   call SetClip 'COM',''
  387.   call Sauvemodule
  388. return
  389.  
  390. SauveModule:
  391.  
  392.   say 'Sauvegarde du module N° '||n
  393.   call Open('file','Program:Fichiers/CFG/Config'||n,'W')
  394.   string ID NomA
  395.   Nom.n=result
  396.   call writeln('file',result)
  397.   cycle ID Mde
  398.   Mode.n=result
  399.   call writeln('file',result)
  400.   string ID Src1
  401.   Src.1.n=result
  402.   call writeln('file',result)
  403.   string ID Src2
  404.   Src.2.n=result
  405.   call writeln('file',result)
  406.   string ID Src3
  407.   Src.3.n=result
  408.   call writeln('file',result)
  409.   string ID Src4
  410.   Src.4.n=result
  411.   call writeln('file',result)
  412.   string ID Src5
  413.   Src.5.n=result
  414.   call writeln('file',result)
  415.   string ID Src6
  416.   Src.6.n=result
  417.   call writeln('file',result)
  418.   string ID Src7
  419.   Src.7.n=result
  420.   call writeln('file',result)
  421.   string ID Src8
  422.   Src.8.n=result
  423.   call writeln('file',result)
  424.   string ID Src9
  425.   Src.9.n=result
  426.   call writeln('file',result)
  427.   string ID Src10
  428.   Src.10.n=result
  429.   call writeln('file',result)
  430.   String ID RepD
  431.   RepD.n=result
  432.   call writeln('file',result)
  433.   string ID Disk
  434.   Disk.n=result
  435.   call writeln('file',result)
  436.   string ID Patrn
  437.   Pat.n=result
  438.   call writeln('file',result)
  439.   cycle ID AM
  440.   Flag.n=result
  441.   call writeln('file',result)
  442.   call Close('file')
  443. return
  444.  
  445. LireModule:
  446. parse arg i
  447.   if presence.i=TRUE then  do
  448.     say 'lecture deja faite'
  449.     string ID NomA  CONTENT Nom.i
  450.     cycle  ID Mde   LABEL   Mode.i
  451.     string ID Src1  CONTENT Src.1.i
  452.     string ID Src2  CONTENT Src.2.i
  453.     string ID Src3  CONTENT Src.3.i
  454.     string ID Src4  CONTENT Src.4.i
  455.     string ID Src5  CONTENT Src.5.i
  456.     string ID Src6  CONTENT Src.6.i
  457.     string ID Src7  CONTENT Src.7.i
  458.     string ID Src8  CONTENT Src.8.i
  459.     string ID Src9  CONTENT Src.9.i
  460.     string ID Src10  CONTENT Src.10.i
  461.     string ID RepD  CONTENT RepD.i
  462.     string ID Disk  Content Disk.i
  463.     string ID Patrn CONTENT Pat.i
  464.     cycle  ID AM    LABEL   Flag.i
  465.     do j=1 to 1000
  466.       nop
  467.       end
  468.   end
  469.   else
  470.   do
  471.   if exists('Program:Fichiers/CFG/Config'||i) then do
  472.     say 'Lecture du module N° '||i
  473.     Call Open('file','Program:Fichiers/CFG/Config'||i,'R')
  474.     Nom.i = readln('file')
  475.     string ID NomA CONTENT Nom.i
  476.     Mode.i = readln('file')
  477.     cycle  ID Mde  LABEL   Mode.i
  478.     Src.1.i = readln('file')
  479.     string ID Src1 CONTENT Src.1.i
  480.     Src.2.i = readln('file')
  481.     string ID Src2 CONTENT Src.2.i
  482.     Src.3.i = readln('file')
  483.     string ID Src3 CONTENT Src.3.i
  484.     Src.4.i = readln('file')
  485.     string ID Src4 CONTENT Src.4.i
  486.     Src.5.i = readln('file')
  487.     string ID Src5 CONTENT Src.5.i
  488.     Src.6.i = readln('file')
  489.     string ID Src6 CONTENT Src.6.i
  490.     Src.7.i = readln('file')
  491.     string ID Src7 CONTENT Src.7.i
  492.     Src.8.i = readln('file')
  493.     string ID Src8 CONTENT Src.8.i
  494.     Src.9.i = readln('file')
  495.     string ID Src9 CONTENT Src.9.i
  496.     Src.10.i = readln('file')
  497.     string ID Src10 CONTENT Src.10.i
  498.     RepD.i = readln('file')
  499.     string ID RepD CONTENT RepD.i
  500.     Disk.i = readln('file')
  501.     string ID Disk CONTENT Disk.i
  502.     Pat.i = readln('file')
  503.     string ID Patrn CONTENT Pat.i
  504.     Flag.i = readln('file')
  505.     cycle  ID AM    LABEL Flag.i
  506.     Presence.i=TRUE
  507.     call Close('file')
  508.   end
  509.   end
  510. return
  511. Arch:
  512.   call setclip 'COM',''
  513.   call QuelArch
  514.   call Arch2
  515. return
  516.  
  517. Arch2:
  518.   call AffCr(Nom.m||':Mise à jours archive.')
  519.   /* Verifier l'éxistance du répertoire destination et l'éxistance de l'archive */
  520.   if exists(RepD.m)=0 then do
  521.     call AffCr('Le repertoire Destination 'RepD.m' n"éxiste pas.')
  522.     return
  523.     end
  524.   if exists(RepD.m'/'Nom.m)=0 then do
  525.     call AffCr('Il faut créer l"archive avant.')
  526.     return
  527.     end
  528.   application ATTRS Application_Sleep 1
  529.   address command 'copy from '||RepD.m||'/'||Nom.m||' to ram: >ram:temp1'
  530.   call erreur 1
  531.   if Mode.m='lha'|Mode.m='Lha' then k=3
  532.   if Mode.m='lzx' then k=2
  533.   if Mode.m='zoo' then k=1
  534.   do j=1 to 10
  535.     if Src.j.m~='' then do
  536.       address command 'c:'||Mode.m||' '||cmd.k.2||' RAM:'||Nom.m||' '||Src.j.m||'/* >ram:temp2'
  537.     end
  538.   end
  539.   address command 'copy from ram:'||Nom.m||' to '||RepD.m
  540.   if Disk.m~='' then
  541.     do
  542.       address command 'updatecopy from ram:'||Nom.m||' to '||Disk.m
  543.       call AffCr(Nom.m||':Mise sur disque.')
  544.     end
  545.   address command 'delete ram:'||Nom.m
  546.   application ATTRS Application_Sleep 0
  547.   call AffCr(Nom.m||':Mise à jours terminée.')
  548.   list ID liste ATTRS MUIA_List_Active m-1
  549. return
  550.  
  551. Creat:
  552.   call setclip 'COM',''
  553.   call QuelArch
  554.   call AffCr(Nom.m||':Création archive.')
  555.   if exists(RepD.m)=0 then do
  556.     call AffCr('Le repertoire Destination 'RepD.m' n"éxiste pas.')
  557.     return
  558.     end
  559.   application ATTRS Application_Sleep 1
  560.   if Mode.m='lha'|Mode.m='Lha' then k=3
  561.   if Mode.m='lzx' then k=2
  562.   if Mode.m='zoo' then k=1
  563.   address command 'c:'||Mode.m||' '||cmd.k.1||' RAM:'||Nom.m||' '||Src.1.m||'/* >ram:Temp2'
  564.    do j=2 to 10
  565.     if Src.j.m~='' then address command 'c:'||Mode.m||' '||cmd.k.2||' RAM:'||Nom.m||' '||Src.j.m||'/* >ram:temp2'
  566.   end
  567.   address command 'copy from ram:'||Nom.m||' to '||RepD.m
  568.   address command 'delete ram:'||Nom.m
  569.   application ATTRS Application_Sleep 0
  570.   call AffCr(Nom.m||':Création terminée.')
  571.   address command 'copy 'RepD.m'/'Nom.m' to 'Disk.m
  572. return
  573.  
  574. Restau:
  575. return
  576.  
  577. AffList:
  578.   say 'Réaffichage liste'
  579.   list ID Liste STRING
  580.   do j=NArc by -1 to 1
  581.     list ID Liste INSERT POS MUIV_List_Insert_Top STRING ListeArc.j
  582.   end
  583. return
  584.  
  585. AffCr:
  586. parse Arg Cr.c
  587.   say 'Mise à jours CR'
  588.   list ID LCR STRING
  589.   do j=c by -1 to 0
  590.     list ID LCR INSERT POS MUIV_List_Insert_Top STRING cr.j
  591.     end
  592.     c=c+1
  593. return
  594.  
  595. OUI:
  596.   call setclip 'COM',''
  597.   say 'oui'
  598.   Flag.m='OUI'
  599.   call change 'OUI'
  600. return
  601.  
  602. NON:
  603.   call setclip 'COM',''
  604.   say 'non'
  605.   Flag.m='NON'
  606.   call change 'NON'
  607. return
  608.  
  609. change:
  610. parse arg F
  611. list ID liste ATTRS List_Active
  612.   p=result+1
  613.   say p
  614.   S=ListeArc.p
  615.   say S
  616.   S1=left(S,lastpos(',',S)-1)
  617.  
  618.   ListeArc.p=S1','F
  619.   say S1
  620.   call AffList
  621.   fin=FALSE
  622.   do j=1 to 30
  623.     if presence.j~=TRUE then call LireModule j /* Se le module n'est pas en mémoire le prendre */
  624.     if S1=Nom.j then do
  625.     say 'module trouvé'
  626.       Flag.j=F
  627.       k=j
  628.       fin=TRUE
  629.       end
  630.   if fin=TRUE then leave
  631.   end
  632.   if k=n then do /* il faut aussi modifier le module en cours */
  633.     /* group ID Root ATTRS MUIA_Group_ActivePage MUIV_Group_ActivePage_Next */ /* se placer sur la page des modules */
  634.     cycle  ID AM    LABEL Flag.k                                         /* Modifier le drapeau */
  635.     /* group ID Root ATTRS MUIA_Group_ActivePage MUIV_Group_ActivePage_Prev */  /* et revenir sur la page maintenance */
  636.   end
  637. return
  638.  
  639. Eff:
  640. call setclip 'COM',''
  641. say m
  642. say NArc
  643. if m=NArc then NArc=NArc-1
  644. else do
  645.   do j=m to NArc
  646.     k=j+1
  647.     ListeArc.j=ListeArc.k
  648.     say j' = 'k
  649.     end
  650.   NArc=NArc-1
  651.   end
  652. call AffList
  653. /* Call Sauve */
  654. return
  655.  
  656. erreur:
  657. parse arg e
  658. call Open('file','ram:temp'||e,'R')
  659. err=readln('file')
  660. say err
  661. call close('file')
  662. return
  663. /* Routines concernant la partie CONFIGURATION */
  664. /* ------------------------------------------- */
  665. Arc:
  666.   call SetClip 'COM',''
  667.   string ID Arc
  668.   Setvar ArcDir result
  669.   list ID Stat INSERT POS MUIV_List_Insert_Bottom STRING 'Modification du répertoire contenant les archives -> 'result
  670. return
  671. RArc:
  672.   call SetClip 'COM',''
  673.   getvar ArcDir
  674.   aslrequest ID Titre TITLE '"Selection Repertoire"' ATTRS ASLFR_InitialDrawer result
  675.   RepArc=result
  676.   string ID Arc CONTENT RepArc
  677.   Setvar ArcDir RepArc
  678.   list ID Stat INSERT POS MUIV_List_Insert_Bottom STRING 'Modification du répertoire contenant les archives -> 'RepArc
  679. return
  680. /* ------------------------------------------- */
  681. Src:
  682.   call SetClip 'COM',''
  683.   string ID Src
  684.   Setvar RepSrc result
  685.   list ID Stat INSERT POS MUIV_List_Insert_Bottom STRING 'Modification du répertoire contenant les données -> 'Result
  686. return
  687. RSrc:
  688. call SetClip 'COM',''
  689.   getvar SrcDir
  690.   aslrequest ID Titre TITLE '"Selection Repertoire"' ATTRS ASLFR_InitialDrawer result
  691.   RepSrc=result
  692.   string ID Src CONTENT RepSrc
  693.   Setvar SrcDir RepSrc
  694.   list ID Stat INSERT POS MUIV_List_Insert_Bottom STRING 'Modification du répertoire contenant les données -> 'RepSrc
  695. return
  696. /* ------------------------------------------- */
  697. Rest:
  698.   call SetClip 'COM',''
  699.   string ID Rest
  700.   Setvar DestDir result
  701.   list ID Stat INSERT POS MUIV_List_Insert_Bottom STRING 'Modification du répertoire pour restauration -> 'Result
  702. return
  703. RRest:
  704.   call SetClip 'COM',''
  705.   getvar DestDir
  706.   aslrequest ID Titre TITLE '"Selection Repertoire"' ATTRS ASLFR_InitialDrawer result
  707.   RepRest=result
  708.   string ID Rest CONTENT RepRest
  709.   Setvar DestDir RepRest
  710.   list ID Stat INSERT POS MUIV_List_Insert_Bottom STRING 'Modification du répertoire pour restauration -> 'RepRest
  711. return
  712. /* --------------------------------------------- */
  713. ALst:
  714.   call SetClip 'COM',''
  715.   string ID ALst
  716.   ActLst=result
  717.   ActLst=right(ActLst,length(ActLst)-lastpos('/',ActLst))
  718.   Setvar Liste Actlst
  719.   list ID Stat INSERT POS MUIV_List_Insert_Bottom STRING 'Modification de la liste courante -> 'ActLst
  720. return
  721. RALst:
  722.   call SetClip 'COM',''
  723.   getvar Liste
  724.   result = 'Program:FICHIERS'
  725.   aslrequest ID Titre TITLE '"Selection Fichier"' ATTRS ASLFR_InitialDrawer result
  726.   ActLst=result
  727.   string ID ALst CONTENT ActLst
  728.   ActLst=right(ActLst,length(ActLst)-lastpos('/',ActLst))
  729.   Setvar Liste ActLst
  730.   list ID Stat INSERT POS MUIV_List_Insert_Bottom STRING 'Modification de la liste courante -> 'ActLst
  731. return
  732. /* --------------------------------------------- */
  733. SC:
  734.   call setclip 'COM',''
  735.   call Open('file','program:Fichiers/CFG/Config','W')
  736.   string ID Arc
  737.   RepArc=result
  738.   Setvar ArcDir RepArc
  739.   call writeln('file',RepArc)
  740.   string ID Src
  741.   RepSrc=result
  742.   Setvar SrcDir RepSrc
  743.   call Writeln('file',RepSrc)
  744.   string ID Rest
  745.   RepRest=result
  746.   setvar DestDir RepRest
  747.   call Writeln('file',RepRest)
  748.   string ID ALst
  749.   ActLst=result
  750.   Setvar Liste ActLst
  751.   call writeln('file',ActLst)
  752.   call Close('file')
  753.   list ID Stat INSERT POS MUIV_List_Insert_Bottom STRING 'Sauvegarde de la configuration OK'
  754. return
  755.  
  756. QuelArch:
  757. list ID liste
  758.   say result
  759.     if result~='' then
  760.   do
  761.     L1=result
  762.     pos=lastpos(',',L1)
  763.     L1=left(L1,pos-1)
  764.     string ID NomM CONTENT L1
  765.     do m=1 to 30
  766.       if presence.m=TRUE & L1=Nom.m then
  767.       do
  768.         b=1
  769.         say 'lecture deja faite'
  770.       end
  771.       else
  772.       do
  773.         if exists('program:Fichiers/CFG/Config'||m) then
  774.         do
  775.           call Open('file','program:Fichiers/CFG/config'||m,'R')
  776.           L2=readln('file')
  777.           say L2
  778.           b=0
  779.           if L1=L2 then
  780.           do
  781.             Nom.m=L1
  782.             Mode.m=readln('file')
  783.             Src.1.m=readln('file')
  784.             Src.2.m=readln('file')
  785.             Src.3.m=readln('file')
  786.             Src.4.m=readln('file')
  787.             Src.5.m=readln('file')
  788.             Src.6.m=readln('file')
  789.             Src.7.m=readln('file')
  790.             Src.8.m=readln('file')
  791.             Src.9.m=readln('file')
  792.             Src.10.m=readln('file')
  793.             RepD.m=readln('file')
  794.             Disk.m=readln('file')
  795.             Flag.m=readln('file')
  796.             Presence.m=TRUE        /* Le module est en mémoire */
  797.             say m
  798.             b=1
  799.           end
  800.           call Close('file')
  801.         end
  802.       end
  803.       if b=1 then break
  804.     end
  805.   end
  806. return
  807.  
  808.  
  809.  
  810.  
  811.  
  812.  
  813.